Ever since people began to figure out how to communicate with one another, there has been the problem of what to do when too many people begin to talk at the same time, demanding answers to the same question, from the same person. Banks attempt to solve this problem by requesting all of their clients who have the same basic questions to form one, usually serpentine-like, line. The line ends at a row of tellers each equipped to answer the same basic questions. In a typical Internet communications network, the line is replaced with an electronic device commonly referred to as a “switch” or “router” and the tellers are replaced with other electronic devices called “servers”.
Almost all Internet communications (sometimes referred to as “traffic”) flows electronically through routers. The Internet is made up of many such routers. It is the job of each router to route traffic to the next “hop” (i.e., destination) which may in fact be another router.
Existing routers can be separated into two types: load balancing routers and non-load balancing routers. A non-load balancing router or switch directs traffic on to the next hop using one of many protocols, most of which allow traffic to be diverted to any router which meets the criteria of the protocol.
Load-balancing routers or switches, on the other hand, are adapted to route traffic to a defined set of “servers” or “next available” server(s). Collectively the defined set of servers is referred to as a “server farm”.
How does a load-balancing router determine which server within a server farm to route Internet traffic to? There is no one answer to this question. Generally speaking, a load-balancing router measures the traffic flowing to and from each server which is connected to it. From such measurements the load-balancing router selects the next available server. Up until now, the challenge has been to develop load-balancing routers which act quickly in selecting the next available server but are also capable of making a reliable selection. That is to say, most load-balancing routers available today sacrifice one or the other: they are very reliable but operate too slowly, or operable very quickly but do not select the proper server. More specifically, existing load-balancing routers take too long to make such a determination. So much so that the benefit of selecting the next available server is defeated because of the relatively long amount of time it takes for the router to make such a selection. Conversely, load-balancing routers which operate very quickly in selecting the next available server often fail to select the appropriate server (i.e., one that can be relied upon to handle additional traffic). That is, such routers select the wrong server. By selecting the wrong server, Internet traffic is directed to a server that may quickly become overloaded. Once a server is overloaded, the time it takes to respond to subsequent requests slows down dramatically.
Accordingly, it is desirable to provide for methods and devices which are capable of selecting the next available Internet server from a group of servers.
Other desires will become apparent to those skilled in the art from the following description taken in conjunction with the accompanying drawings and claims.